package com.gufe.vo.joinArmy;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gufe.vo.allSchool.PhysicalTestVO;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class JoinArmyPersonInfoVO {
    private Integer id; // 主键ID
    private String name; // 姓名
    private Integer gender; // 性别
    private String idCard; // 身份证号
    private String nationality; // 民族
    private String politicalAffiliation; // 政治面貌
    private String educationBackground; // 学历
    private String schoolStatus; // 学业情况（在校生，毕业生）
    private String college; // 学院
    private String major; // 专业
    private String studentId; // 学号
    private String homeAddress; // 家庭住址
    private String telephone; // 联系电话
    private String joinArmyPlace; // 应征地
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate joinArmyDate; // 入伍日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate dischargeDate; // 退伍时间
    private String militaryBranch; // 军种
    private String retentionArmyStatus; // 留队情况
    private String troopAwards; // 部队获奖情况
    private String remark; // 备注
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime createdAt; // 创建时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime updatedAt; // 更新时间
    private String profilePicture; // 个人头像
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate birthDate; // 出生日期
    private Integer maritalStatus; // 婚姻状况 (0: 未婚, 1: 已婚)
    private String nativePlace; // 籍贯
    private Integer grade; // 年级
    private String className; // 班级名称
    private Double height; // 身高 (单位: 米)
    private Double weight; // 体重 (单位: 千克)
    private String vision; // 视力
    private String unitNumber; // 部队编号
    private String rankname; // 军衔
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate firstEnlistmentDate; // 第一次报名应征日期
    private String militarySpecialty; // 军事专业
    private String militaryPosition; // 军事职务
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate joinedSchoolDate; // 初次入读财大时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate returnSchoolDate; // 复学财大时间
    private String leaveArmyCertificateNumber; // 退役证编号
    private Integer userId; // zbt用户id


    private String primarySchoolName; // 小学名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate primarySchoolStartDate; // 小学开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate primarySchoolEndDate; // 小学结束日期
    private String middleSchoolName; // 初中名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate middleSchoolStartDate; // 初中开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate middleSchoolEndDate; // 初中结束日期
    private String highSchoolName; // 高中名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate highSchoolStartDate; // 高中开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate highSchoolEndDate; // 高中结束日期
    private String universityName; // 大学名称
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate universityStartDate; // 大学开始日期
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate universityEndDate; // 大学结束日期

    //体测数据列表
    List<PhysicalTestVO> physicalTestVOList;
}
